package com.qymerge.manage.base.ro;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>Title: </p>
 * <p>Description: 生产成本</p>
 *
 * @author Xiao
 * @version 1.0.0
 * @date 2025/5/26 23:01
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BDMProductionCostRO implements Serializable {

    private Long Id;                                //

    private String CompanyId;                       // 法人公司
    private String CompanyName;                     // 法人公司

    private String PeriodId;                        // 会计期间
    private String PeriodYear;                      // 会计期间年

    private String CostCenterId;                    // 成本中心（部门）
    private String CostCenterCode;                  // 成本中心编码
    private String CostCenterName;                  // 成本中心名称

    private String AccountViewCode;                 // 科目代码（法人公司）
    private String AccountViewName;                 // 科目名称（法人公司）

    private String MaterialCode;                    // 物料编码
    private String MaterialName;                    // 物料名称

    private BigDecimal StdPackQuantity;             // 标准箱规格
    private String GroupName;                       // 产品分类
    private String ProductionOrderNumber;           // 生产订单号

    private String WorkOrderCategory;               // 工单类别
    private Date ProductionDate;                    // 生成日期

    private BigDecimal WorkHours;                   // 产线工时
    private BigDecimal ProductionLineNumber;        // 产线人数
    private BigDecimal TotalWorkHours;              // 总工时
    private BigDecimal ProductionQuantity;          // 生产数量
    private BigDecimal DirectMaterial;              // 直接材料
    private BigDecimal Packaging;                   // 包装材料
    private BigDecimal ExternalProcessingFee;       // 外协加工费
    private BigDecimal LabourCost;                  // 人工成本
    private BigDecimal Wastage;                     // 物耗
    private BigDecimal EnergyCost;                  // 能源费
    private BigDecimal DepreciationAmortization;    // 折旧摊销
    private BigDecimal AdministrativeExpenses;      // 办公费
    private BigDecimal RepairCharge;                // 修理费
    private BigDecimal SafeProductionReserve;       // 安全生产准备金
    private BigDecimal ExtensiveRepair;             // 大修理
    private BigDecimal TotalCost;                   // 成本总额
    private BigDecimal UnitCost;                    // 单位成本

    public BDMProductionCostRO(String companyId, String companyName, String periodYear, String costCenterCode, String costCenterName, String accountViewCode, String accountViewName, String materialCode, String materialName, BigDecimal stdPackQuantity, String groupName, String productionOrderNumber, String workOrderCategory, Date productionDate, BigDecimal workHours, BigDecimal productionLineNumber, BigDecimal totalWorkHours, BigDecimal productionQuantity, BigDecimal directMaterial, BigDecimal packaging, BigDecimal externalProcessingFee, BigDecimal labourCost, BigDecimal wastage, BigDecimal energyCost, BigDecimal depreciationAmortization, BigDecimal administrativeExpenses, BigDecimal repairCharge, BigDecimal safeProductionReserve, BigDecimal extensiveRepair, BigDecimal totalCost, BigDecimal unitCost) {
        CompanyId = companyId;
        CompanyName = companyName;
        PeriodYear = periodYear;
        CostCenterCode = costCenterCode;
        CostCenterName = costCenterName;
        AccountViewCode = accountViewCode;
        AccountViewName = accountViewName;
        MaterialCode = materialCode;
        MaterialName = materialName;
        StdPackQuantity = stdPackQuantity;
        GroupName = groupName;
        ProductionOrderNumber = productionOrderNumber;
        WorkOrderCategory = workOrderCategory;
        ProductionDate = productionDate;
        WorkHours = workHours;
        ProductionLineNumber = productionLineNumber;
        TotalWorkHours = totalWorkHours;
        ProductionQuantity = productionQuantity;
        DirectMaterial = directMaterial;
        Packaging = packaging;
        ExternalProcessingFee = externalProcessingFee;
        LabourCost = labourCost;
        Wastage = wastage;
        EnergyCost = energyCost;
        DepreciationAmortization = depreciationAmortization;
        AdministrativeExpenses = administrativeExpenses;
        RepairCharge = repairCharge;
        SafeProductionReserve = safeProductionReserve;
        ExtensiveRepair = extensiveRepair;
        TotalCost = totalCost;
        UnitCost = unitCost;
    }

}
